/**
 * localStorage 工具函数
 */

const STORAGE_KEY = {
  SECRET_KEY: 'file_to_code_secret_key',
  SECRET_KEY_EXPIRE: 'file_to_code_secret_key_expire'
}

// secretKey 有效期：6小时（毫秒）
const SECRET_KEY_EXPIRE_TIME = 6 * 60 * 60 * 1000

/**
 * 保存 secretKey
 * @param {string} key 
 */
export function saveSecretKey(key) {
  const expireTime = Date.now() + SECRET_KEY_EXPIRE_TIME
  localStorage.setItem(STORAGE_KEY.SECRET_KEY, key)
  localStorage.setItem(STORAGE_KEY.SECRET_KEY_EXPIRE, expireTime.toString())
}

/**
 * 获取 secretKey
 * @returns {string|null}
 */
export function getSecretKey() {
  const expireTime = localStorage.getItem(STORAGE_KEY.SECRET_KEY_EXPIRE)
  
  // 检查是否过期
  if (expireTime && Date.now() > parseInt(expireTime)) {
    // 已过期，清除
    clearSecretKey()
    return null
  }
  
  return localStorage.getItem(STORAGE_KEY.SECRET_KEY)
}

/**
 * 清除 secretKey
 */
export function clearSecretKey() {
  localStorage.removeItem(STORAGE_KEY.SECRET_KEY)
  localStorage.removeItem(STORAGE_KEY.SECRET_KEY_EXPIRE)
}

/**
 * 检查 secretKey 是否存在且有效
 * @returns {boolean}
 */
export function hasValidSecretKey() {
  return getSecretKey() !== null
}

